/**
 * 
 */
package com.zcy.dao;

import java.util.List;
import java.util.Map;

/**
 * @author 周成瑜
 *
 */
	public interface BaseDao<T> {
		//保存实体
		public void save(T o);
	    //删除实体
		public void delete(T o);
	    //更新实体
		public void update(T o);
	    //保存或更新实体
		public void saveOrUpdate(T o);
	    //通过hql得到实体对象
		public T get(String hql);
	    //通过hql和传递的参数得到单个实体对象
		public T get(String hql, Map<String, Object> params);
	    //通过hql得到实体集合
		public List<T> find(String hql);
	    //通过hql和map类型参数得到list集合
		public List<T> find(String hql, Map<String, Object> params);
	    //通过hql和传递的起始页数和需要返回的行数得到list集合（用于分页）
		public List<T> find(String hql, int page, int rows);
	    //用于分页的条件查询
		public List<T> find(String hql, Map<String, Object> params, int page, int rows);
	    //通过hql得到总数
		public Long count(String hql);
	    //通过hql和条件得到总数
		public Long count(String hql, Map<String, Object> params);
}
